using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Attributes;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Attributes.DomainAttributes;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Enums;
using System.Collections.Generic;
using System.ComponentModel;

namespace Baci.ArcGIS._GeostatisticalAnalystTools._Interpolation
{
    /// <summary>
    /// <para>Empirical Bayesian Kriging</para>
    /// <para>Empirical Bayesian kriging is an interpolation method that accounts for the error in estimating the underlying semivariogram through repeated simulations.</para>
    /// <para>经验贝叶斯克里金法是一种插值方法，它通过重复模拟来解释估计基础半变异函数的误差。</para>
    /// </summary>    
    [DisplayName("Empirical Bayesian Kriging")]
    public class EmpiricalBayesianKriging : AbstractGPProcess
    {
        /// <summary>
        /// 无参构造
        /// </summary>
        public EmpiricalBayesianKriging()
        {

        }

        /// <summary>
        /// 有参构造
        /// </summary>
        /// <param name="_in_features">
        /// <para>Input features</para>
        /// <para>The input point features containing the z-values to be interpolated.</para>
        /// <para>包含要插值的 z 值的输入点要素。</para>
        /// </param>
        /// <param name="_z_field">
        /// <para>Z value field</para>
        /// <para>Field that holds a height or magnitude value for each point. This can be a numeric field or the Shape field if the input features contain z-values or m-values.</para>
        /// <para>保存每个点的高度或大小值的字段。这可以是数值字段，也可以是形状字段（如果输入要素包含 z 值或 m 值）。</para>
        /// </param>
        public EmpiricalBayesianKriging(object _in_features, object _z_field)
        {
            this._in_features = _in_features;
            this._z_field = _z_field;
        }
        public override string ToolboxName => "Geostatistical Analyst Tools";

        public override string ToolName => "Empirical Bayesian Kriging";

        public override string CallName => "ga.EmpiricalBayesianKriging";

        public override List<string> AcceptEnvironments => ["cellSize", "coincidentPoints", "extent", "geographicTransformations", "mask", "outputCoordinateSystem", "parallelProcessingFactor", "snapRaster", "workspace"];

        public override object[] ParameterInfo => [_in_features, _z_field, _out_ga_layer, _out_raster, _cell_size, _transformation_type.GetGPValue(), _max_local_points, _overlap_factor, _number_semivariograms, _search_neighborhood, _output_type.GetGPValue(), _quantile_value, _threshold_type.GetGPValue(), _probability_threshold, _semivariogram_model_type.GetGPValue()];

        /// <summary>
        /// <para>Input features</para>
        /// <para>The input point features containing the z-values to be interpolated.</para>
        /// <para>包含要插值的 z 值的输入点要素。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Input features")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public object _in_features { get; set; }


        /// <summary>
        /// <para>Z value field</para>
        /// <para>Field that holds a height or magnitude value for each point. This can be a numeric field or the Shape field if the input features contain z-values or m-values.</para>
        /// <para>保存每个点的高度或大小值的字段。这可以是数值字段，也可以是形状字段（如果输入要素包含 z 值或 m 值）。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Z value field")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public object _z_field { get; set; }


        /// <summary>
        /// <para>Output geostatistical layer</para>
        /// <para>The geostatistical layer produced. This layer is required output only if no output raster is requested.</para>
        /// <para>生成的地统计图层。仅当未请求输出栅格时，此图层才是必需的输出。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Output geostatistical layer")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public object _out_ga_layer { get; set; } = null;


        /// <summary>
        /// <para>Output raster</para>
        /// <para>The output raster. This raster is required output only if no output geostatistical layer is requested.</para>
        /// <para>输出栅格。仅当未请求输出地统计图层时，此栅格才是必需的输出。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Output raster")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public object _out_raster { get; set; } = null;


        /// <summary>
        /// <para>Output cell size</para>
        /// <para><xdoc>
        ///   <para>The cell size at which the output raster will be created.</para>
        ///   <para>This value can be explicitly set in the Environments by the Cell Size parameter.</para>
        ///   <para>If not set, it is the shorter of the width or the height of the extent of the input point features, in the input spatial reference, divided by 250.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>将创建输出栅格的像元大小。</para>
        ///   <para>此值可以通过像元大小参数在“环境”中显式设置。</para>
        ///   <para>如果未设置，则为输入空间参考中输入点要素范围的宽度或高度除以 250 的较短者。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Output cell size")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public object _cell_size { get; set; } = null;


        /// <summary>
        /// <para>Data transformation type</para>
        /// <para><xdoc>
        ///   <para>Type of transformation to be applied to the input data.</para>
        ///   <bulletList>
        ///     <bullet_item>None—Do not apply any transformation. This is the default.</bullet_item><para/>
        ///     <bullet_item>Empirical—Multiplicative Skewing transformation with Empirical base function.</bullet_item><para/>
        ///     <bullet_item>Log empirical—Multiplicative Skewing transformation with Log Empirical base function. All data values must be positive. If this option is chosen, all predictions will be positive.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>要应用于输入数据的转换类型。</para>
        ///   <bulletList>
        ///     <bullet_item>无 （None） - 不应用任何变换。这是默认设置。</bullet_item><para/>
        ///     <bullet_item>经验 （Empirical） - 具有经验基函数的乘法偏变换。</bullet_item><para/>
        ///     <bullet_item>对数经验 （Log Empirical） - 使用对数经验基函数的乘法倾斜变换。所有数据值必须为正数。如果选择此选项，则所有预测都将为正数。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Data transformation type")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _transformation_type_value _transformation_type { get; set; } = _transformation_type_value._NONE;

        public enum _transformation_type_value
        {
            /// <summary>
            /// <para>None</para>
            /// <para>None—Do not apply any transformation. This is the default.</para>
            /// <para>无 （None） - 不应用任何变换。这是默认设置。</para>
            /// </summary>
            [Description("None")]
            [GPEnumValue("NONE")]
            _NONE,

            /// <summary>
            /// <para>Empirical</para>
            /// <para>Empirical—Multiplicative Skewing transformation with Empirical base function.</para>
            /// <para>经验 （Empirical） - 具有经验基函数的乘法偏变换。</para>
            /// </summary>
            [Description("Empirical")]
            [GPEnumValue("EMPIRICAL")]
            _EMPIRICAL,

            /// <summary>
            /// <para>Log empirical</para>
            /// <para>Log empirical—Multiplicative Skewing transformation with Log Empirical base function. All data values must be positive. If this option is chosen, all predictions will be positive.</para>
            /// <para>对数经验 （Log Empirical） - 使用对数经验基函数的乘法倾斜变换。所有数据值必须为正数。如果选择此选项，则所有预测都将为正数。</para>
            /// </summary>
            [Description("Log empirical")]
            [GPEnumValue("LOGEMPIRICAL")]
            _LOGEMPIRICAL,

        }

        /// <summary>
        /// <para>Maximum number of points in each local model</para>
        /// <para>The input data will automatically be divided into groups that do not have more than this number of points.</para>
        /// <para>输入数据将自动划分为不超过此点数的组。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Maximum number of points in each local model")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public long _max_local_points { get; set; } = 100;


        /// <summary>
        /// <para>Local model area overlap factor</para>
        /// <para>A factor representing the degree of overlap between local models (also called subsets). Each input point can fall into several subsets, and the overlap factor specifies the average number of subsets that each point will fall into. A high value of the overlap factor makes the output surface smoother, but it also increases processing time. Typical values vary between 0.01 and 5.</para>
        /// <para>表示局部模型（也称为子集）之间重叠程度的因子。每个输入点可以分为多个子集，重叠因子指定每个点将落入的子集的平均数目。重叠因子的高值使输出表面更平滑，但也增加了处理时间。典型值在 0.01 到 5 之间变化。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Local model area overlap factor")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public double _overlap_factor { get; set; } = 1;


        /// <summary>
        /// <para>Number of simulated semivariograms</para>
        /// <para>The number of simulated semivariograms of each local model.</para>
        /// <para>每个局部模型的模拟半变异函数数。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Number of simulated semivariograms")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public long _number_semivariograms { get; set; } = 100;


        /// <summary>
        /// <para>Search neighborhood</para>
        /// <para><xdoc>
        ///   <para>Defines which surrounding points will be used to control the output. Standard Circular is the default.</para>
        ///   <para>Standard Circular</para>
        ///   <bulletList>
        ///     <bullet_item>Max neighbors—The maximum number of neighbors that will be used to estimate the value at the unknown location.</bullet_item><para/>
        ///     <bullet_item>Min neighbors—The minimum number of neighbors that will be used to estimate the value at the unknown location.</bullet_item><para/>
        ///     <bullet_item>Sector Type—The geometry of the neighborhood.
        ///     <bulletList>
        ///       <bullet_item>One sector—Single ellipse.  </bullet_item><para/>
        ///       <bullet_item>Four sectors—Ellipse divided into four sectors.  </bullet_item><para/>
        ///       <bullet_item>Four sectors shifted—Ellipse divided into four sectors and shifted 45 degrees.  </bullet_item><para/>
        ///       <bullet_item>Eight sectors—Ellipse divided into eight sectors.  </bullet_item><para/>
        ///     </bulletList>
        ///     </bullet_item><para/>
        ///     <bullet_item>Angle—The angle of rotation for the axis (circle) or semimajor axis (ellipse) of the moving window.</bullet_item><para/>
        ///     <bullet_item>Radius—The length of the radius of the search circle.</bullet_item><para/>
        ///   </bulletList>
        ///   <para>Smooth Circular</para>
        ///   <bulletList>
        ///     <bullet_item>Smoothing factor—The Smooth Interpolation option creates an outer ellipse and an inner ellipse at a distance equal to the Major Semiaxis multiplied by the Smoothing factor. The points that fall outside the smallest ellipse but inside the largest ellipse are weighted using a sigmoidal function with a value between zero and one.</bullet_item><para/>
        ///     <bullet_item>Radius—The length of the radius of the search circle.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>定义将用于控制输出的周围点。标准通函是默认设置。</para>
        ///   <para>标准通函</para>
        ///   <bulletList>
        ///     <bullet_item>最大邻居数 - 将用于估计未知位置值的最大邻居数。</bullet_item><para/>
        ///     <bullet_item>最小邻居 - 将用于估计未知位置的值的最小邻居数。</bullet_item><para/>
        /// <bullet_item>扇区类型 - 邻域的几何。
        ///     <bulletList>
        ///       <bullet_item>一个扇区 - 单个椭圆。</bullet_item><para/>
        ///       <bullet_item>四个扇区 - 椭圆分为四个扇区。</bullet_item><para/>
        ///       <bullet_item>四个扇区移动 - 椭圆分为四个扇区并移动 45 度。</bullet_item><para/>
        ///       <bullet_item>八个扇区 - 椭圆分为八个扇区。</bullet_item><para/>
        ///     </bulletList>
        ///     </bullet_item><para/>
        ///     <bullet_item>角度 （Angle） - 移动窗口的轴（圆）或半长轴（椭圆）的旋转角度。</bullet_item><para/>
        ///     <bullet_item>半径 - 搜索圆半径的长度。</bullet_item><para/>
        ///   </bulletList>
        ///   <para>光滑的圆形</para>
        ///   <bulletList>
        ///     <bullet_item>平滑因子 - “平滑插值”（Smooth Interpolation） 选项在距离等于“主半轴”乘以“平滑因子”（Smoothing factor） 的距离处创建外椭圆和内椭圆。对于位于最小椭圆之外但在最大椭圆内的点，使用值介于 0 和 1 之间的 S 形函数进行加权。</bullet_item><para/>
        ///     <bullet_item>半径 - 搜索圆半径的长度。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Search neighborhood")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public object _search_neighborhood { get; set; } = null;


        /// <summary>
        /// <para>Output surface type</para>
        /// <para><xdoc>
        ///   <para>Surface type to store the interpolation results.</para>
        ///   <bulletList>
        ///     <bullet_item>Prediction—Prediction surfaces are produced from the interpolated values.</bullet_item><para/>
        ///     <bullet_item>Standard error of prediction— Standard Error surfaces are produced from the standard errors of the interpolated values.</bullet_item><para/>
        ///     <bullet_item>Probability—Probability surface of values exceeding or not exceeding a certain threshold.</bullet_item><para/>
        ///     <bullet_item>Quantile—Quantile surface predicting the specified quantile of the prediction distribution.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>用于存储插值结果的曲面类型。</para>
        ///   <bulletList>
        ///     <bullet_item>预测 - 根据插值生成预测曲面。</bullet_item><para/>
        ///     <bullet_item>预测标准误差 - 标准误差曲面由插值的标准误差生成。</bullet_item><para/>
        ///     <bullet_item>概率 - 超过或不超过特定阈值的值的概率曲面。</bullet_item><para/>
        ///     <bullet_item>分位数 - 预测预测分布的指定分位数的分位数曲面。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Output surface type")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _output_type_value _output_type { get; set; } = _output_type_value._PREDICTION;

        public enum _output_type_value
        {
            /// <summary>
            /// <para>Prediction</para>
            /// <para>Prediction—Prediction surfaces are produced from the interpolated values.</para>
            /// <para>预测 - 根据插值生成预测曲面。</para>
            /// </summary>
            [Description("Prediction")]
            [GPEnumValue("PREDICTION")]
            _PREDICTION,

            /// <summary>
            /// <para>Quantile</para>
            /// <para>Quantile—Quantile surface predicting the specified quantile of the prediction distribution.</para>
            /// <para>分位数 - 预测预测分布的指定分位数的分位数曲面。</para>
            /// </summary>
            [Description("Quantile")]
            [GPEnumValue("QUANTILE")]
            _QUANTILE,

            /// <summary>
            /// <para>Probability</para>
            /// <para>Probability—Probability surface of values exceeding or not exceeding a certain threshold.</para>
            /// <para>概率 - 超过或不超过特定阈值的值的概率曲面。</para>
            /// </summary>
            [Description("Probability")]
            [GPEnumValue("PROBABILITY")]
            _PROBABILITY,

            /// <summary>
            /// <para>Standard error of prediction</para>
            /// <para>Standard error of prediction— Standard Error surfaces are produced from the standard errors of the interpolated values.</para>
            /// <para>预测标准误差 - 标准误差曲面由插值的标准误差生成。</para>
            /// </summary>
            [Description("Standard error of prediction")]
            [GPEnumValue("PREDICTION_STANDARD_ERROR")]
            _PREDICTION_STANDARD_ERROR,

        }

        /// <summary>
        /// <para>Quantile value</para>
        /// <para>The quantile value for which the output raster will be generated.</para>
        /// <para>将为其生成输出栅格的分位数值。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Quantile value")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public double _quantile_value { get; set; } = 0.5;


        /// <summary>
        /// <para>Probability threshold type</para>
        /// <para><xdoc>
        ///   <para>Specifies whether to calculate the probability of exceeding or not exceeding the specified threshold.</para>
        ///   <bulletList>
        ///     <bullet_item>Exceed—Probability values exceed the threshold. This is the default.</bullet_item><para/>
        ///     <bullet_item>Not exceed—Probability values will not exceed the threshold.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定是否计算超过或不超过指定阈值的概率。</para>
        ///   <bulletList>
        ///     <bullet_item>超出 - 概率值超过阈值。这是默认设置。</bullet_item><para/>
        ///     <bullet_item>未超过—概率值不会超过阈值。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Probability threshold type")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _threshold_type_value _threshold_type { get; set; } = _threshold_type_value._EXCEED;

        public enum _threshold_type_value
        {
            /// <summary>
            /// <para>Exceed</para>
            /// <para>Exceed—Probability values exceed the threshold. This is the default.</para>
            /// <para>超出 - 概率值超过阈值。这是默认设置。</para>
            /// </summary>
            [Description("Exceed")]
            [GPEnumValue("EXCEED")]
            _EXCEED,

            /// <summary>
            /// <para>Not exceed</para>
            /// <para>Not exceed—Probability values will not exceed the threshold.</para>
            /// <para>未超过—概率值不会超过阈值。</para>
            /// </summary>
            [Description("Not exceed")]
            [GPEnumValue("NOT_EXCEED")]
            _NOT_EXCEED,

        }

        /// <summary>
        /// <para>Probability threshold</para>
        /// <para>The probability threshold value. If left empty, the median (50th quantile) of the input data will be used.</para>
        /// <para>概率阈值。如果留空，则将使用输入数据的中位数（第 50 个分位数）。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Probability threshold")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public double? _probability_threshold { get; set; } = null;


        /// <summary>
        /// <para>Semivariogram model type</para>
        /// <para><xdoc>
        ///   <para>The semivariogram model that will be used for the interpolation.</para>
        ///   <bulletList>
        ///     <bullet_item>Power—Power semivariogram</bullet_item><para/>
        ///     <bullet_item>Linear—Linear semivariogram</bullet_item><para/>
        ///     <bullet_item>Thin plate spline—Thin Plate Spline semivariogram</bullet_item><para/>
        ///     <bullet_item>Exponential—Exponential semivariogram</bullet_item><para/>
        ///     <bullet_item>Exponential detrended—Exponential semivariogram with first order trend removal</bullet_item><para/>
        ///     <bullet_item>Whittle—Whittle semivariogram</bullet_item><para/>
        ///     <bullet_item>Whittle detrended—Whittle semivariogram with first order trend removal</bullet_item><para/>
        ///     <bullet_item>K-Bessel—K-Bessel semivariogram</bullet_item><para/>
        ///     <bullet_item>K-Bessel detrended—K-Bessel semivariogram with first order trend removal</bullet_item><para/>
        ///   </bulletList>
        ///   <para>The available choices depend on the value of the Data transformation type parameter.</para>
        ///   <para>If the transformation type is set to None, only the first three semivariograms are available. If the type is Empirical or Log empirical, the last six semivariograms are available.</para>
        ///   <para>For more information about choosing an appropriate semivariogram for your data, see the topic What is Empirical Bayesian Kriging.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>将用于插值的半变异函数模型。</para>
        ///   <bulletList>
        ///     <bullet_item>幂 - 幂半变异函数</bullet_item><para/>
        ///     <bullet_item>线性 （Linear） - 线性半变异函数</bullet_item><para/>
        ///     <bullet_item>薄板样条曲线 （Thin Plate spline） - 薄板样条半变异函数</bullet_item><para/>
        ///     <bullet_item>指数 - 指数半变异函数</bullet_item><para/>
        ///     <bullet_item>指数去趋势 - 具有一阶趋势去除的指数半变异函数</bullet_item><para/>
        ///     <bullet_item>Whittle—Whittle 半变异函数</bullet_item><para/>
        ///     <bullet_item>Whittle detrended - 去除一阶趋势的 Whittle 半变异函数</bullet_item><para/>
        ///     <bullet_item>K-贝塞尔—K-贝塞尔半变异函数</bullet_item><para/>
        ///     <bullet_item>K-Bessel 去趋势 - 具有一阶趋势去除的 K-Bessel 半变异函数</bullet_item><para/>
        ///   </bulletList>
        ///   <para>可用的选项取决于 Data transformation type 参数的值。</para>
        ///   <para>如果变换类型设置为 None，则只有前三个半变异函数可用。如果类型为“经验”或“对数经验”，则最后六个半变异函数可用。</para>
        ///   <para>有关为数据选择适当的半变异函数的详细信息，请参阅主题什么是经验贝叶斯克里法。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Semivariogram model type")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _semivariogram_model_type_value _semivariogram_model_type { get; set; } = _semivariogram_model_type_value._POWER;

        public enum _semivariogram_model_type_value
        {
            /// <summary>
            /// <para>Power</para>
            /// <para>Power—Power semivariogram</para>
            /// <para>幂 - 幂半变异函数</para>
            /// </summary>
            [Description("Power")]
            [GPEnumValue("POWER")]
            _POWER,

            /// <summary>
            /// <para>Linear</para>
            /// <para>Linear—Linear semivariogram</para>
            /// <para>线性 （Linear） - 线性半变异函数</para>
            /// </summary>
            [Description("Linear")]
            [GPEnumValue("LINEAR")]
            _LINEAR,

            /// <summary>
            /// <para>Thin plate spline</para>
            /// <para>Thin plate spline—Thin Plate Spline semivariogram</para>
            /// <para>薄板样条曲线 （Thin Plate spline） - 薄板样条半变异函数</para>
            /// </summary>
            [Description("Thin plate spline")]
            [GPEnumValue("THIN_PLATE_SPLINE")]
            _THIN_PLATE_SPLINE,

            /// <summary>
            /// <para>Exponential</para>
            /// <para>Exponential—Exponential semivariogram</para>
            /// <para>指数 - 指数半变异函数</para>
            /// </summary>
            [Description("Exponential")]
            [GPEnumValue("EXPONENTIAL")]
            _EXPONENTIAL,

            /// <summary>
            /// <para>Exponential detrended</para>
            /// <para>Exponential detrended—Exponential semivariogram with first order trend removal</para>
            /// <para>指数去趋势 - 具有一阶趋势去除的指数半变异函数</para>
            /// </summary>
            [Description("Exponential detrended")]
            [GPEnumValue("EXPONENTIAL_DETRENDED")]
            _EXPONENTIAL_DETRENDED,

            /// <summary>
            /// <para>Whittle</para>
            /// <para>Whittle—Whittle semivariogram</para>
            /// <para>Whittle—Whittle 半变异函数</para>
            /// </summary>
            [Description("Whittle")]
            [GPEnumValue("WHITTLE")]
            _WHITTLE,

            /// <summary>
            /// <para>Whittle detrended</para>
            /// <para>Whittle detrended—Whittle semivariogram with first order trend removal</para>
            /// <para>Whittle detrended - 去除一阶趋势的 Whittle 半变异函数</para>
            /// </summary>
            [Description("Whittle detrended")]
            [GPEnumValue("WHITTLE_DETRENDED")]
            _WHITTLE_DETRENDED,

            /// <summary>
            /// <para>K-Bessel</para>
            /// <para>K-Bessel—K-Bessel semivariogram</para>
            /// <para>K-贝塞尔—K-贝塞尔半变异函数</para>
            /// </summary>
            [Description("K-Bessel")]
            [GPEnumValue("K_BESSEL")]
            _K_BESSEL,

            /// <summary>
            /// <para>K-Bessel detrended</para>
            /// <para>K-Bessel detrended—K-Bessel semivariogram with first order trend removal</para>
            /// <para>K-Bessel 去趋势 - 具有一阶趋势去除的 K-Bessel 半变异函数</para>
            /// </summary>
            [Description("K-Bessel detrended")]
            [GPEnumValue("K_BESSEL_DETRENDED")]
            _K_BESSEL_DETRENDED,

        }

        public EmpiricalBayesianKriging SetEnv(object cellSize = null, object coincidentPoints = null, object extent = null, object geographicTransformations = null, object mask = null, object outputCoordinateSystem = null, object parallelProcessingFactor = null, object snapRaster = null, object workspace = null)
        {
            base.SetEnv(cellSize: cellSize, coincidentPoints: coincidentPoints, extent: extent, geographicTransformations: geographicTransformations, mask: mask, outputCoordinateSystem: outputCoordinateSystem, parallelProcessingFactor: parallelProcessingFactor, snapRaster: snapRaster, workspace: workspace);
            return this;
        }

    }

}